package czhcontroller

import (
	"Cgo/common"
	"Cgo/front/models"

	"github.com/gin-gonic/gin"
)

func CzhStrategyController(r *gin.RouterGroup) {
	r.GET("/getAllStrategy", common.HandlerFunc(getAllStrategy))
	r.GET("/getStrategyById", common.HandlerFunc(getStrategy))
	r.POST("/editStrategy", common.HandlerFunc(editStrategy))
	r.GET("/getStrategyByTitle", common.HandlerFunc(getStrategyByTitle))
}

// @Summary 获取所有文章数据
// @Schemes
// @Description 获取所有文章数据
// @Tags czh前台接口
// @Accept json
// @Produce json
// @Success 200 {object} common.RT[[]models.CzhStrategy]
// @Router /front/czh/strategy/getStrategyById [get]
func getAllStrategy(ctx *gin.Context) common.Result {
	allStrategy, err := StrategyDao.GetAllStrategy()
	if err != nil {
		return common.R.Fail("暂无文章数据")
	}
	return common.R.Success(allStrategy)
}

// @Summary 获取文章数据
// @Schemes
// @Description 获取文章数据
// @Tags czh前台接口
// @Param id query string true "文章id"
// @Accept json
// @Produce json
// @Success 200 {object} common.RT[models.CzhStrategy]
// @Router /front/czh/strategy/getStrategy [get]
func getStrategy(ctx *gin.Context) common.Result {
	id := ctx.Query("id")
	if id == "" {
		return common.R.Fail("参数错误")
	}
	strategy, err := StrategyDao.GetStrategyById(id)
	if err != nil {
		return common.R.Fail("暂无用户数据")
	}
	return common.R.Success(strategy)
}

// @Summary 文章编辑
// @Schemes
// @Description 文章编辑
// @Tags czh前台接口
// @Param strategy body models.CzhStrategy true "文章信息"
// @Accept json
// @Produce json
// @Success 200 {object} common.RT[string]
// @Router /front/czh/strategy/editStrategy [post]
func editStrategy(ctx *gin.Context) common.Result {
	var strategy models.CzhStrategy
	err := ctx.ShouldBindJSON(&strategy)
	if err != nil {
		return common.R.Fail("参数错误")
	}
	err = StrategyDao.EditStrategy(strategy.Title, strategy.Detail, strategy.Username, strategy.Userid, strategy.Coverimg, strategy.Imglist)
	if err != nil {
		return common.R.Fail("编辑失败")
	}
	return common.R.Success("编辑成功")
}

// @Summary 根据关键字查询相关文章
// @Schemes
// @Description 根据关键字查询相关文章
// @Tags czh前台接口
// @Param title query string true "关键字"
// @Accept json
// @Produce json
// @Success 200 {object} common.RT[[]models.CzhStrategy]
// @Router /front/czh/strategy/getStrategyByTitle [get]
func getStrategyByTitle(ctx *gin.Context) common.Result {
	title := ctx.Query("title")
	strategyList, err := StrategyDao.GetStrategyByTitle(title)
	if err != nil {
		return common.R.Fail("暂无相关游记文章")
	}
	return common.R.Success(strategyList)
}
